//具体的可以申明的数据类型
class Emp {
    name: string;//字符串类型
    age: number;//数字类型  12
    money: number;//数字类型  12.12
    married: boolean;//布尔类型
    x: any;//任意类型   写.没有代码提示  相当于没有申明类型
    //混合类型
    y: number | string;//相当于或的意思
    //数组类型
    names: Array<string>;//固定： 数组类型，其中元素都是字符串
    //另一种语法
    emps: string[];//[]是Array的缩写格式

    show() {
        this.name = 'wje'
    }
}

// [proName:string]:any 表示任意类型的属性
let c: { name: string, [proName: string]: any }
c = { name: '猪八戒', age: 18, sex: '男' }

// 设置函数结构的类型声明
// 语法(形参：类型，形参：类型，...)=>返回值
let fn: (a: number, b: number) => number;
fn = function (n1: number, n2: number): number {
    return n1 + n2;
}

let arr:number[];//表示数字数组
let arr1:Array<number>

// 定义元组 固定长度的数组
let tup:[string,string]

// 枚举
let i:{name:string,gender:0|1};